package com.kehutong.contact.service;

import com.kehutong.common.util.Token;
import com.kehutong.contact.entity.Contact;
import com.kehutong.contact.entity.Customer;
import com.kehutong.contact.service.impl.CustomerServiceImpl;
import org.coraframework.inject.ImplementedBy;
import org.coraframework.json.JSONObject;
import org.coraframework.orm.jdbc.Page;

/**
 * @author liujinwang
 * description 客户管理服务类
 */
@ImplementedBy(CustomerServiceImpl.class)
public interface CustomerService {

    /**
     * 根据条件获取客户列表
     * @param jsonObject 查询对象
     * @return 客户列表
     */
    Page<Customer> page(JSONObject jsonObject);

    /**
     * 获取客户列表
     * @param jsonObject 查询对象
     * @return 客户列表
     */
    Object list(JSONObject jsonObject);

    /**
     * 新增客户
     *
     * @param token
     * @param  customer 新增
     * @param contact
     * @return success
     */
    Object save(Token token, Customer customer, Contact contact) throws Exception;

    /**
     * 编辑客户
     * @param  customer 编辑
     * @param token
     * @return success
     */
    Object update(Customer customer, Token token) throws Exception;

    /**
     * 删除客户
     * @param  customer 删除
     * @return success
     */
    Object delete(Customer customer);
}
